home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
util
/
boot
/
AmyShutDown_sr.lha
/
ShutDownGUI.c
< prev
next >
Wrap
C/C++ Source or Header
|
1997-06-05
|
6KB
|
219 lines
// AmyShutDown MUI code
// Copyright (©) 1997, Infinity Labs Development Organization
// All Rights Reserved.
// Version 1.00
// Author: Manolis S. Pappas
#ifndef MAKE_ID
#define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
#endif
/* Libraries */
#include <libraries/mui.h>
#include <libraries/gadtools.h> /* for Barlabel in MenuItem */
#include <exec/memory.h>
#include <exec/types.h>
#include <intuition/intuition.h>
#include <intuition/imageclass.h>
/* Prototypes */
#include <proto/muimaster.h>
#include <clib/exec_protos.h>
#include <clib/alib_protos.h>
#include "ShutDownGUI.h"
// data for the quit image
UWORD quitPaletteRGB4[8] =
{
0x0999,0x0000,0x0FFF,0x046A,0x0777,0x0AAA,0x0A97,0x0FA9
};
ULONG quitPaletteRGB32[26] =
{
0x00080000, /* Record Header */
0x96666666,0x96666666,0x96666666,
0x00000000,0x00000000,0x00000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0x3DDDDDDD,0x65555555,0xA2222222,
0x79999999,0x79999999,0x79999999,
0xAEEEEEEE,0xAEEEEEEE,0xAEEEEEEE,
0xAAAAAAAA,0x92222222,0x7DDDDDDD,
0xFFFFFFFF,0xAAAAAAAA,0x96666666,
0x00000000 /* Terminator */
};
UWORD __chip quitData[102] =
{
/* Plane 0 */
0x0000,0x0100,0x7E5E,0x0100,0x79FF,0xC100,0x2642,0xC100,
0x4CA2,0xE100,0x289E,0xF100,0x58F5,0xD900,0x182B,0x4D00,
0x4C2C,0xAD00,0x2C3D,0x5D00,0x462E,0xBD00,0x0336,0x7900,
0x01FC,0xF100,0x00FF,0xE100,0x401F,0x8100,0xFFFF,0xFF00,
0x0000,0x0000,
/* Plane 1 */
0xFFFF,0xFE00,0x801E,0x0000,0x8040,0x8000,0x817C,0x0000,
0x8762,0x2000,0x8742,0x1000,0x8F1C,0x8800,0x97D9,0x2400,
0x8BC8,0x5400,0x83C4,0xA400,0x81D2,0x4C00,0x82D2,0x9800,
0x8105,0x3000,0x80E0,0xE000,0x801F,0x8000,0x0000,0x0000,
0x0000,0x0000,
/* Plane 2 */
0x0000,0x0100,0x7FA1,0x0000,0x7E00,0x4000,0x2883,0x2400,
0x542B,0x1000,0x3007,0x4800,0x6886,0x6400,0x200C,0xD200,
0x5013,0xA200,0x3423,0x5200,0x4809,0xA200,0x0419,0x4600,
0x0202,0x0E00,0x0100,0x1E00,0x4000,0x7E00,0x8000,0x0000,
0x0000,0x0000
};
struct Image quitImg =
{
0, 0, /* LeftEdge, TopEdge */
26, 17, 3, /* Width, Height, Depth */
quitData, /* ImageData */
0x0007, 0x0000, /* PlanePick, PlaneOnOff */
NULL /* NextImage */
};
static char *GetMBString(APTR ref)
{
char *aux;
aux = GetShutDown_SystemString(ref);
if (aux[1] == '\0') return(&aux[2]);
else return(aux);
}
struct ObjApp * CreateApp(void)
{
struct ObjApp * Object;
APTR grpMain, grpSelect, imageQuestion, grpOptions, labSelect, grpAction;
APTR Space_0;
if (!(Object = AllocVec(sizeof(struct ObjApp),MEMF_PUBLIC|MEMF_CLEAR)))
return(NULL);
Object->radOptionsContent[0] = GetMBString(MSG_radOptions0);
Object->radOptionsContent[1] = GetMBString(MSG_radOptions1);
Object->radOptionsContent[2] = NULL;
imageQuestion = ImageObject,
MUIA_Image_OldImage,&quitImg,
MUIA_Frame, MUIV_Frame_ImageButton,
MUIA_FixHeight, 64,
MUIA_FixWidth, 40,
End;
labSelect = Label(GetMBString(MSG_labSelect));
Object->radOptions = RadioObject,
MUIA_Background, MUII_SelectedBack,
MUIA_Frame, MUIV_Frame_String,
MUIA_ControlChar, GetShutDown_SystemString(MSG_radOptions)[0],
MUIA_Radio_Entries, Object->radOptionsContent,
End;
grpOptions = GroupObject,
MUIA_Background, MUII_RequesterBack,
MUIA_Frame, MUIV_Frame_Prop,
Child, labSelect,
Child, Object->radOptions,
End;
grpSelect = GroupObject,
MUIA_Frame, MUIV_Frame_Group,
MUIA_Group_Horiz, TRUE,
Child, imageQuestion,
Child, grpOptions,
End;
Object->butOk = SimpleButton(GetMBString(MSG_butOk));
Space_0 = HVSpace;
Object->butCancel = SimpleButton(GetMBString(MSG_butCancel));
grpAction = GroupObject,
MUIA_Group_Horiz, TRUE,
Child, Object->butOk,
Child, Space_0,
Child, Object->butCancel,
End;
grpMain = GroupObject,
Child, grpSelect,
Child, grpAction,
End;
Object->winChoose = WindowObject,
MUIA_Window_Title, GetMBString(MSG_winChoose),
MUIA_Window_ID, MAKE_ID('0', 'W', 'I', 'N'),
MUIA_Window_CloseGadget, FALSE,
MUIA_Window_DepthGadget, FALSE,
MUIA_Window_DragBar, FALSE,
MUIA_Window_SizeGadget, FALSE,
MUIA_Window_NoMenus, TRUE,
MUIA_Window_ScreenTitle,"AmyShutDown "__AMIGADATE__" © 1997 Infinity Labs Development Organization",
WindowContents, grpMain,
End;
Object->App = ApplicationObject,
MUIA_Application_Author, "Manolis S. Pappas",
MUIA_Application_Base, "AmyShutDown",
MUIA_Application_Title, "ShutDown System?",
MUIA_Application_Version, "$VER: ShutDown 1.00 "__AMIGADATE__,
MUIA_Application_UseCommodities,FALSE,
MUIA_Application_UseRexx,FALSE,
SubWindow, Object->winChoose,
End;
if (!Object->App)
{
FreeVec(Object);
return(NULL);
}
DoMethod(Object->butOk,
MUIM_Notify, MUIA_Pressed, FALSE,
Object->App,
2,
MUIM_Application_ReturnID, OK
);
DoMethod(Object->butCancel,
MUIM_Notify, MUIA_Pressed, FALSE,
Object->winChoose,
3,
MUIM_Set, MUIA_Window_Open, FALSE
);
DoMethod(Object->butCancel,
MUIM_Notify, MUIA_Pressed, FALSE,
Object->App,
2,
MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit
);
DoMethod(Object->winChoose,
MUIM_Window_SetCycleChain, Object->radOptions,
Object->butOk,
Object->butCancel,
0
);
set(Object->winChoose,
MUIA_Window_Open, TRUE
);
return(Object);
}
void DisposeApp(struct ObjApp * Object)
{
MUI_DisposeObject(Object->App);
FreeVec(Object);
}